Image forming apparatuses (or printers) support many different printing languages such as PostScript, PCL (Printer Command Language), and PJL (Printer Job Language). A look at these languages shows that they provide many methods to allow a user to affect how the printer works for subsequent jobs. For example, PCL allows users to download new fonts to a printer so that the new font can be used by subsequent print jobs. In a similar manner, PJL allows users to enable automatic input tray selection for all subsequent jobs. These methods provided by printing language enrich and enhance the user experience by adding useful features and functionality.
However, in an environment with multiple users, unintentional or malicious use of these methods can negatively affect the ability of other users to print. For example, if a user downloads a new font to a PCL printer, another user can issue a PCL command to delete the font and prevent other users from printing documents with the new font. Alternatively, if a user downloads too many fonts to the printer it can fill up the printer's internal storage and prevent other users from uploading new fonts.
Some languages, such as PJL, provide features to attempt to address these issues. However, there can be limitations. For instance, in PJL an optional password can be used to allow or deny a user from setting default values, such as the number of copies to print for all subsequent jobs. However, since the password is not encrypted before being sent and is very short (0-65535), it can be easily determined by a malicious user. Both a simple inspection of the printer's network traffic for the password or a quick test of all possible passwords would allow for full access to the printer's PJL settings. Other languages simply do not provide the necessary security features to address granting, denying, and control of access on a per-user basis.
Accordingly, it would be desirable to address these issues by giving printer administrators the ability to grant, deny, and control access to printer language features on a per-user basis. For instance, one user may be able to download, store, and/or delete PCL fonts to a printer and another user may not be allowed to download, store, and/or delete PCL fonts. In addition, one user may be allowed to delete any selected font and another user may only be allowed to delete fonts which that user himself has downloaded to the printer. In another example, one user may be allowed to change the default value of a PJL variable yet another may not be granted access to change default values. Alternatively, another user may be limited so he may set the default value of only a few specific PJL variables.
It can be appreciated that in accordance with another exemplary embodiment, administrators are provided with a method to allow, deny, and generally control user access to printer language features (e.g. PDLs and PJL) which have an affect on other users. In this way, administrators can prevent unauthorized users from negatively affecting how the printer behaves for other users, either intentionally or unintentionally.